﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Web.UI.WebControls;
using System.Globalization;

namespace Utility
{
    public class CheckValidate
    {
        // kiểm tra chuỗi nhập vào là null hay rỗng
        public static bool CheckNull(string str)
        {
            return (str.Length == 0 || str.Equals(null) || str.ToString() == "");
        }

        // kiểm tra độ dài max và min của 1 chuỗi
        public static bool CheckLength(string str, int max, int min)
        {
            return (str.Length > max || str.Length < min);
        }

        // kiểm tra độ dài của 1 chuỗi
        public static int CheckLengthNumber(string str)
        {
            return str.Length;
        }

        // kiểm tra email
        public static bool CheckEmail(string str)
        {
            string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
            @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
            @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
            Regex re = new Regex(strRegex);
            return re.IsMatch(str);
        }
        
        // kiểm tra số nhập vào có phải là số âm hay ko
        public static bool CheckMinus(string num)
        {
            return num.StartsWith("-") || num.StartsWith("_") || num.StartsWith(" ");
        }

        // kiểm tra số nhập vào phải là kiểu int
        public static bool CheckIntNumber(string n)
        {
            try
            {
                if (n.Length > 8)
                {
                    return false;
                }
                else if(Int32.Parse(n) == 0)
                {
                    return false;
                }
                else if(CheckMinus(n)==true)
                {
                    return false;
                }
                else
                {
                    Int32.Parse(n.Trim());
                    return true;
                }
            }
            catch { return false; }
        }

        // kiểm tra ngày nhập vào có đúng định dạng hay ko
        public static bool IsDate(string strDate)
        {
            DateTime dt;
            bool boolIsDate = true;
            try
            {
                dt = DateTime.Parse(strDate);
            }
            catch
            {
                boolIsDate = false;
            }
            return boolIsDate;
        }

        // ngày bắt đầu trừ ngày kết thúc , kết quả trả về là số năm
        public static int GetYears(DateTime startDate, DateTime endDate)
        {
            if (endDate < startDate)
                return GetYears(endDate, startDate);

            int years = (endDate.Year - startDate.Year);

            if (endDate.Year == startDate.Year)
                return years;

            if (endDate.Month < startDate.Month)
                return years;

            if (endDate.Month == startDate.Month && endDate.Day < startDate.Day)
                return years;

            return years;
        }

    }
}

